home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
90xx
/
9001a.d64
/
qll zollrhc
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
7KB
|
354 lines
2 REM ZOLLRASTERHARDCOPY
3 REM
4 REM VON NORBERT RAMEK
5 REM IGNAZ RIEDERKAI 17
6 REM A-5020 SALZBURG
7 REM
20 REM OPEN 1,4:PRINT#1,CHR$(15);CHR$(27);CHR$(108);CHR$(15);
100 SYS8*4096
110 *= $6400
120 .OPT OO
200 PRINT = $FFD2
250 CHKOUT = $FFC9
260 CLRCH = $FFCC
270 CLOSE = $FFC3
300 ZLE = *-1
310 SPLTE = *-2
320 PIXNR = *-3
330 TBPTR = *-4
340 TBSTRT = *-5
350 SPERR = *-6
360 ENDZLE = *-7
370 DRKBYTE = *-15
2000 ;
2001 ;HARDCOPY
2002 ;********
2003 ;
2010 LDX #1;LOG. FILENUMMER
2020 JSR CHKOUT
2030 LDA #0;STARTADRESSE LI GRAF
2040 STA $FD;LO
2050 LDA #$20
2060 STA $FE;HI
2070 LDA #0;LF SPERREN
2080 STA SPERR
2090 STA ENDZLE
2100 LDA #9
2110 STA ZLE
2120 LDA #$1B;DRUCKER INITIALISIEREN
2130 JSR PRINT
2140 LDA #$40
2150 JSR PRINT
2160 JSR DRK;ZEILEN 1-10 (LI+RE) DRUCKEN
2170 LDA #$80;STARTADRESSE ZEILE 11
2180 STA $FD;LO
2190 LDA #$2C
2200 STA $FE;HI
2210 LDA #9
2220 STA ZLE
2230 JSR DRK;ZEILEN 11-20 DRUCKEN
2240 LDA #0;STARTADRESSE ZEILE 21
2250 STA $FD;LO
2260 LDA #$39
2270 STA $FE;HI
2280 LDA #5
2290 STA ZLE;UNGLEICH 0 ALS FLAG
2300 STA ENDZLE
2310 JSR DRK;ZEILEN 21-25 DRUCKEN
2320 LDX #0;VORSCHUB 10/216 + INITIALISIEREN
2330 ES3 LDA ESCTB3,X
2340 JSR PRINT
2350 INX
2360 CPX #6
2370 BNE ES3
2380 JSR CLRCH
2390 LDA #1;LOG. FILENUMMER
2400 JSR CLOSE
2410 RTS;ZU BASIC
2500 ;--- AUSDRUCK 10 GRAFIKZEILEN (LI+RE) ---
2510 DRK LDA #0;STARTEWERT IN TABELLE
2520 STA TBSTRT
2530 ;1. DRUCKDURCHGANG
2540 DRK1 JSR LF
2550 LDA #1;LF FREIGEBEN
2560 STA SPERR
2570 JSR GRMOD;GRAFIKMODUS EINLEITEN
2580 JSR DD;1 BILDSCHIRMZEILE DRUCKEN
2590 JSR AD1;GRAFIKADR. AUF RE GRAF
2600 JSR DD
2610 LDA #$0A;LF
2620 JSR PRINT
2630 JSR AD2;GRAFIKADR. AUF LI GRAF
2640 JSR AD3;ADRESSE ZURUECK ZEILENANFANG
2650 ;2. DRUCKDURCHGANG
2660 JSR GRMOD;GRAFIKMODUS EINLEITEN
2670 INC TBSTRT
2680 JSR DD;1 BILDSCHIRMZEILE DRUCKEN
2690 JSR AD1;GRAFIKADR. AUF RE GRAF
2700 JSR DD
2710 LDA #$0A;LF
2720 JSR PRINT
2730 JSR AD2;GRAFIKADR. AUF LI GRAF
2740 JSR AD3;ADRESSE ZURUECK ZEILENANFANG
2750 ;3. DRUCKDURCHGANG
2760 JSR GRMOD;GRAFIKMODUS EINLEITEN
2770 INC TBSTRT
2780 JSR DD;1 BILDSCHIRMZEILE DRUCKEN
2790 JSR AD1;GRAFIKADR. AUF RE GRAF
2800 JSR DD
2810 JSR AD2;GRAFIKADR. AUF LI GRAF
2820 CLC;STARTWERT IN TAB. ERHOEHEN
2830 LDA TBSTRT
2840 ADC #22;+2 MAL INC = 24/216
2850 STA TBSTRT
2860 DEC ZLE
2870 BNE DRK1;NAECHSTE ZEILE
2880 RTS
3000 ;--- AUSDRUCK 1 DRUCKERZEILE ---
3010 DD LDA #40
3020 STA SPLTE
3030 DD9 LDA TBSTRT;STARTWERT IN TABELLE
3040 STA TBPTR
3050 LDA #0;DRUCKERBYTES LOESCHEN
3060 LDY #7
3070 LS1 STA DRKBYTE,Y
3080 DEY
3090 BPL LS1
3100 ;NADELN VON OBEREN 8*8 FELD SETZEN
3110 LDY #0
3120 DD1 LDA ($FD),Y;BITMUSTER GRAFIKBYTE
3130 LDX #0;GRAFIKPIXEL 0-7
3140 DD2 ASL;LINKES BIT INS CARRY
3150 BCC DD3;WENN PIXEL GELOESCHT
3160 PHA;VERSCHOBENES GRAFIKBYTE MERKEN
3170 STX PIXNR;MERKEN
3180 LDX TBPTR
3190 LDA NADELTB,X;NUMMER ZUGEORDN. NADEL
3200 JSR UMR1;IN DRUCKER-GRAFIKBYTE UMRECHNEN
3210 LDX PIXNR;ZURUECK
3220 ORA DRKBYTE,X
3230 STA DRKBYTE,X;BIT FUER NADEL SETZEN
3240 PLA;VERSCHOBENES GRAFIKBYTE ZURUECK
3250 DD3 INX
3260 CPX #8
3270 BNE DD2
3280 INC TBPTR;AUF NAECHSTE NADEL
3290 INC TBPTR
3300 INC TBPTR
3310 INY
3320 CPY #8
3330 BNE DD1;NAECHSTES GRAFIKBYTE
3500 ;GRAFIKADRESSE AUF UNTERES 8*8 FELD
3510 CLC;+320
3520 LDA #$40;LO
3530 ADC $FD
3540 STA $FD
3550 LDA #1;HI
3560 ADC $FE
3570 STA $FE
3600 ;NADELN VON UNTEREN 8*8 FELD SETZEN
3610 LDA TBSTRT;STARTWERT IN TABELLE
3620 STA TBPTR
3630 LDY #0
3640 DD4 LDA ENDZLE;AUF UNTEREN RAND TESTEN
3650 BEQ DD10
3660 LDA ZLE
3670 CMP #1
3680 BEQ DD11;NADELN U. FELD UEBERSPR.
3690 DD10 LDA ($FD),Y;BITMUSTER GRAFIKBYTE
3700 LDX #0;GRAFIKPIXEL 0-7
3710 DD5 ASL;LINKES BIT INS CARRY
3720 BCC DD6;WENN PIXEL GELOESCHT
3730 PHA;VERSCHOBENES GRAFIKBYTE MERKEN
3740 STX PIXNR;MERKEN
3750 LDX TBPTR
3760 LDA NADELTB,X;NUMMER ZUGEORDN. NADEL
3770 JSR UMR2;IN DRUCKER-GRAFIKBYTE UMRECHNEN
3780 LDX PIXNR
3790 ORA DRKBYTE,X
3800 STA DRKBYTE,X;BIT FUER NADEL SETZEN
3810 PLA;VERSCHOBENES GRAFIKBYTE ZURUECK
3820 DD6 INX
3830 CPX #8
3840 BNE DD5
3850 INC TBPTR;AUF NAECHSTE NADEL
3860 INC TBPTR
3870 INC TBPTR
3880 INY
3890 CPY #8
3900 BNE DD4;NAECHSTES GRAFIKBYTE
4000 ;GRAFIKADRESSE AUF NAECHSTES FELD OBEN
4010 DD11 SEC;-320+8=-312
4020 LDA $FD;LO
4030 SBC #$38
4040 STA $FD
4050 LDA $FE;HI
4060 SBC #1
4070 STA $FE
4080 ;DATEN ZUM DRUCKER SCHICKEN
4090 LDX #0
4100 DD7 LDA DRKBYTE,X
4110 JSR PRINT
4120 JSR PRINT
4130 JSR PRINT
4140 INX
4150 CPX #8
4160 BNE DD7
4170 DEC SPLTE
4180 BEQ DD8
4190 JMP DD9;NEACHSTES FELD
4200 DD8 RTS
4500 ;--- UMRECHNUNG TABELLENWERT IN DRUCKERBYTE ---
4510 UMR1 LSR;HI-NIBBEL HERAUSFILTERN
4520 LSR
4530 LSR
4540 LSR
4550 TAX
4560 LDA TABUMR,X
4570 RTS
4580 UMR2 AND #%00001111;LO-NIBBEL HERAUSFILTERN
4590 TAX
4600 LDA TABUMR,X
4610 RTS
5000 ;
5001 ;DIV. UNTERPROGRAMME
5002 ;*******************
5003 ;
5010 ;GRAFIKMODUS EINLEITEN
5020 GRMOD LDX #0
5030 ES1 LDA ESCTB1,X
5040 JSR PRINT
5050 INX
5060 CPX #7
5070 BNE ES1
5080 RTS
5200 ;VORSCHUB 22/216 ZOLL
5210 LF LDA SPERR;BEIM 1. MAL UEBERSPRINGEN
5220 BEQ LF1
5230 LDX #0
5240 ES2 LDA ESCTB2,X
5250 JSR PRINT
5260 INX
5270 CPX #4
5280 BNE ES2
5290 LF1 RTS
5400 ;GRAFIKADRESSE AUF RE GRAF ERHOEHEN
5410 AD1 CLC;+8192-320=+7872
5420 LDA $FD;LO
5430 ADC #$C0
5440 STA $FD
5450 LDA $FE;HI
5460 ADC #$1E
5470 STA $FE
5480 RTS
5600 ;GRAFIKADRESSE AUF LI GRAF ERNIEDRIGEN
5610 AD2 SEC;-8192
5620 LDA $FE;HI
5630 SBC #$20
5640 STA $FE
5650 RTS
5800 ;GRAFIKADRESSE ZURUECK AUF ZEILENANFANG
5810 AD3 SEC;-320
5820 LDA $FD;LO
5830 SBC #$40
5840 STA $FD
5850 LDA $FE
5860 SBC #1;HI
5870 STA $FE
5880 RTS
6000 ;
6001 ;ESC-TABELLEN
6002 ;************
6003 ;
6010 ESCTB1 .BYTE $1B,$33,$01;ZEILENABSTAND 1/216
6020 .BYTE $1B,$5A,$80,$07;ESC Z 1920 PUNKTE
6030 ESCTB2 .BYTE $1B,$33,$16,$0A;ZEILENABSTAND 22/216 + LF
6040 ESCTB3 .BYTE $1B,$33,$0A,$0A,$1B,$40;ZEILENABSTAND 10/216+LF+INIT
6050 TABUMR .BYTE 0,$80,$40,$20
6060 .BYTE $10,$08,$04,$02,$01
7000 ;
7001 ;ZUORDNUNGSTABELLE
7002 ;*****************
7003 ;
7010 NADELTB .BYTE $18,$18,$18
7020 .BYTE $20,$20,$20
7030 .BYTE $30,$30,$20
7040 .BYTE $40,$40,$30
7050 .BYTE $50,$50,$40
7060 .BYTE $60,$50,$50
7070 .BYTE $70,$60,$60
7080 .BYTE $80,$70,$70
7100 ;
7110 .BYTE $08,$07,$07
7120 .BYTE $10,$18,$18
7130 .BYTE $20,$20,$20
7140 .BYTE $30,$30,$30
7150 .BYTE $40,$40,$30
7160 .BYTE $50,$50,$40
7170 .BYTE $60,$60,$50
7180 .BYTE $70,$60,$60
7200 ;
7210 .BYTE $07,$07,$06
7220 .BYTE $18,$07,$07
7230 .BYTE $10,$18,$18
7240 .BYTE $20,$20,$20
7250 .BYTE $30,$30,$30
7260 .BYTE $40,$40,$40
7270 .BYTE $50,$50,$40
7280 .BYTE $60,$60,$50
7300 ;
7310 .BYTE $06,$06,$05
7320 .BYTE $07,$07,$06
7330 .BYTE $18,$08,$07
7340 .BYTE $20,$18,$18
7350 .BYTE $20,$20,$20
7360 .BYTE $30,$30,$30
7370 .BYTE $40,$40,$40
7380 .BYTE $50,$50,$50
7400 ;
7410 .BYTE $05,$05,$05
7420 .BYTE $06,$06,$06
7430 .BYTE $07,$07,$06
7440 .BYTE $18,$08,$07
7450 .BYTE $20,$10,$18
7460 .BYTE $30,$20,$20
7470 .BYTE $30,$30,$30
7480 .BYTE $40,$40,$40
7500 ;
7510 .BYTE $04,$04,$04
7520 .BYTE $05,$05,$05
7530 .BYTE $06,$06,$06
7540 .BYTE $07,$07,$07
7550 .BYTE $18,$18,$07
7560 .BYTE $20,$10,$18
7570 .BYTE $30,$20,$20
7580 .BYTE $40,$30,$30
7600 ;
7610 .BYTE $04,$03,$03
7620 .BYTE $05,$04,$04
7630 .BYTE $05,$05,$05
7640 .BYTE $06,$06,$06
7650 .BYTE $07,$07,$07
7660 .BYTE $18,$18,$08
7670 .BYTE $20,$20,$18
7680 .BYTE $30,$20,$20
7700 ;
7710 .BYTE $03,$03,$02
7720 .BYTE $04,$03,$03
7730 .BYTE $05,$04,$04
7740 .BYTE $06,$05,$05
7750 .BYTE $06,$06,$06
7760 .BYTE $07,$07,$07
7770 .BYTE $18,$18,$08
7780 .BYTE $20,$20,$10
7800 ;
7810 .BYTE $02,$02,$01
7820 .BYTE $03,$03,$02
7830 .BYTE $04,$04,$03
7840 .BYTE $05,$04,$04
7850 .BYTE $06,$05,$05
7860 .BYTE $07,$06,$06
7870 .BYTE $07,$07,$07
7880 .BYTE $18,$18,$18
7890 ;